博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thinkphp 3.2笔记
阅读量:4881 次
发布时间:2019-06-11

本文共 5882 字,大约阅读时间需要 19 分钟。

重点笔记:

1.再写模板的时候一定要注意大小写 Goods_index.html 正确;goods_index.html 错误 养成程序猿好习惯。linux系统对大小写敏感。

2.基础配置

建立模块(默认访问模块)

define('BIND_MODULE','Login');

define('BIND_MODULE','Admin');

define('BIND_MODULE','User');

 

 

1.环境配置

php版本>5.3.0,用wampserver所有条件满足

2.变量

$this->show('111') 同等与echo '1';

$this->display('dd.html')  输出模板,模板位置view/index/dd.html

$this->display()  是输出默认的模板 view/index/index.html

$this->assign($arr)  

截取字符串:{

$data.name|substr=0,3}和<?php echo (substr($data['name'],0,3)); ?>

默认值输出:{

$user.nickname|default="这家伙很懒,什么也没留下"}

I('post.id',0,'intval')

 

要尽量避免直接使用$_GET $_POST $_REQUEST 等数据,这些可能会导致安全的隐患。 就算你要获取整个$_GET数据,我们也建议你使用 I('get.') 的方式

 

3.where方法使用字符串条件的时候,支持预处理(安全过滤),并支持两种方式传入预处理参数,例如:

$Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();

$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();

 

4.连接数据库www\erp\App\Common\Conf,不需要单独去mysql_connect

'配置值' 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'erp', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => 'root', // 密码 'DB_PORT' => 3306, // 端口 'DB_PREFIX' => 'tp_', // 数据库表前缀 'DB_CHARSET'=> 'utf8', // 字符集 'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志 3.2.3新增* 'DB_TYPE' => 'mysql' );

 5.设置__ROOT__过滤

第一个位置(默认位置):

protected function templateContentReplace($content) {        // 系统默认的特殊变量替换        $replace =  array(            '__ROOT__'      =>  __ROOT__,       // 当前网站地址            '__APP__'       =>  __APP__,        // 当前应用地址            '__MODULE__'    =>  __MODULE__,            '__ACTION__'    =>  __ACTION__,     // 当前操作地址            '__SELF__'      =>  htmlentities(__SELF__),       // 当前页面地址            '__CONTROLLER__'=>  __CONTROLLER__,            '__URL__'       =>  __CONTROLLER__,            '__PUBLIC__'    =>  __ROOT__.'/Public',// 站点公共目录                    );        // 允许用户自定义模板的字符串替换        if(is_array(C('TMPL_PARSE_STRING')) )            $replace =  array_merge($replace,C('TMPL_PARSE_STRING'));        $content = str_replace(array_keys($replace),array_values($replace),$content);        return $content;    }

第二个位置www\erp\App\Common\Conf

第三个位置www\erp\App\Home\Conf

'配置值' 'TMPL_PARSE_STRING' => array( '__Template__' => '1', ),);

 6.模板连接

模板不存在:./App/Home/Template/default/Index/index.html

控制Temloate的属性是:DEFAULT_V_LAYER默认是(View)  默认的视图层名称

控制default的属性是:DEFAULT_THEME 默认为空     默认模板主题名称

控制/index/index.html属性是TMPL_FILE_DEPR默认是'/'     //模板文件CONTROLLER_NAME与ACTION_NAME之间的分割符

如'TMPL_FILE_DEPR'        =>  '/'  显示/index/index.html,  'TMPL_FILE_DEPR'        =>  '_' 显示是default/index_index.html 或者是user_index.html,user_add.html 

7.Model模块www\erp\App\Home\Model

Model文件写法

select(); return $goods_list; }}?>

在控制器页面调用

goods_list(); $this->assign('goods_list',$goods_list); echo $this->display(); }}

其他用法

m = M('goods'); // 初始化变量 } public function goods_info(){ print_r($this->m->select()); } }?>

 

 

8.把tp标签传入到js变量里面

9.把tp标签传入到js的function Ajax里面

function Ajax(){    alert(url);}

 10,if语句

<if condition= "$goods_list ">记录列表<else />暂无记录</if>

11.传递参数

html页面

php

$url = U('Goods/index');

 12.定义define在php文件引用

index.php:define('__UPLOAD__','./Upload/');

php输出:echo  __UPLOAD__;

13 多条件查询

$where['_string'] = ' (goods_name like "%'.$files['keywords'].'%")  OR ( goods_barcode like "%'.$files['keywords'].'") ';

另一种

$where['add_time'] = array(array('lt',$endtime),array('egt',$starttime));

打印出结果

SELECT * FROM `tp_stock_note` WHERE `depot_id` = 1 AND ( `add_time` < 1466410170 AND `add_time` >= 1466352000 ) ORDER BY id desc LIMIT 0,15

 不同字段相同查询

$where['goods_name|barcode|goods_sn'] = array('like','%'.$keywords.'%');

不同字段不同查询

$map['status&title'] =array('1','thinkphp','_multi'=>true); //'_multi'=>true必须加在数组的最后,表示当前是多条件匹配

等同于

$map['status'] = 1;$map['title']  = 'thinkphp';

查询字段支持更多的,例如:

$map['status&score&title'] =array('1',array('gt','0'),'thinkphp','_multi'=>true);

 

 

 

14,thinkphp3.2 分页的LIST_ROW 不显示问题(增加红色代码),Page.class.php第139行

array('%HEADER%', '%NOW_PAGE%', '%UP_PAGE%', '%DOWN_PAGE%', '%FIRST%', '%LINK_PAGE%', '%END%', '%TOTAL_ROW%', '%TOTAL_PAGE%'),            array($this->config['header'], $this->nowPage, $up_page, $down_page, $the_first, $link_page, $the_end, $this->totalRows, $this->totalPages),

改为

array('%HEADER%', '%NOW_PAGE%', '%UP_PAGE%', '%DOWN_PAGE%', '%FIRST%', '%LINK_PAGE%', '%END%', '%TOTAL_ROW%', '%TOTAL_PAGE%','%LIST_ROW%'),            array($this->config['header'], $this->nowPage, $up_page, $down_page, $the_first, $link_page, $the_end, $this->totalRows, $this->totalPages,$this->listRows),

 15,

$g = A('goods') 与$g= new GoodsController(); 效果同等

$goods_list = $g->goods_list();

16.语言包

html页面输出:{:L('serKeywords')}

php:$val = L('serKeywords')

16.输出sql语句

$where['offer_id'] = $id;           $arr = $m->field('goods_name,goods_sn,barcode,goods_type,price')->select();        $f = $m->getlastsql();        print_r($f)

17.加载类方式

手动加载:

// 导入Org类库包 Library/Org/Util/Date.class.php类库import("Org.Util.Date");// 导入Home模块下面的 Application/Home/Util/UserUtil.class.php类库import("Home.Util.UserUtil");// 导入当前模块下面的类库 import("@.Util.Array");// 导入Vendor类库包 Library/Vendor/Zend/Server.class.phpimport('Vendor.Zend.Server');

如:

Auth.class.php

namespace Org\Util    //注意上面不需要这个 class Auth {    public function ss(){        echo '22';        }}
import("Org.Util.Auth");$tt = new \Auth();                    //创建PHPExcel对象,注意,不能少了\ echo $tt->ss();

 

自动加载:

new \Org\Util\Auth();

 

 

17.ThinkPHP\Library\Org\Util 命名

在util新建Auth.class.php文件

class Auth {    public function ss(){        echo '22';        }}

在控制器页面引用

import("Org.Util.Auth");$tt = new \Auth();                    //创建PHPExcel对象,注意,不能少了\echo $tt->ss();

 18输出模板路径

echo T('Index/index');

19直接输出T模板

$this->display(T('Index/index')

$this->display(T('Admin@Public/menu'));

T('Admin@Public/menu');// 返回 Admin/View/Public/menu.html

转载于:https://www.cnblogs.com/wesky/articles/5368994.html

你可能感兴趣的文章
window下phpstudy的nginx配置虚拟主机
查看>>
学习函数链式调用,获取对象字段避免报错
查看>>
线程响应键盘按键的例子
查看>>
hdu–2369 Bone Collector II(01背包变形题)
查看>>
ISAPI_Rewrite应用技巧与方法
查看>>
正则表达式的整理笔记
查看>>
Oracle PL/SQL中的循环处理(sql for循环)
查看>>
缓存插件 EHCache 页面缓存CachingFilter
查看>>
Freemarker 各种格式化
查看>>
微信小程序- 提示不在以下合法域名列表中
查看>>
第二个冲刺
查看>>
第十二周
查看>>
MediaPlayer配合SurfaceView或TextureView做视频播放器时的截图方法。
查看>>
JS模拟jQuery选择器
查看>>
【BZOJ1758】【WC2010】重建计划(点分治,单调队列)
查看>>
MySQL之myisamchk
查看>>
SQLite学习
查看>>
mysql-8.0 安装教程(自定义配置文件,密码方式已修改)
查看>>
[转]关于信息安全认证CISP与CISSP的对比及分析
查看>>
jquery.getParams.js
查看>>